←Select platform

RasterImage Constructor(RasterMemoryFlags,Int32,Int32,Int32,RasterByteOrder,RasterViewPerspective,RasterColor[])

Summary
Constructs a new RasterImage object using the specified parameters and optional managed memory.
Syntax
Objective-C
- (nullable instancetype)initWithFlags:(LTRasterMemoryFlags)flags  
                                 width:(NSInteger)width  
                                height:(NSInteger)height 
                          bitsPerPixel:(NSInteger)bitsPerPixel  
                                 order:(LTRasterByteOrder)order  
                       viewPerspective:(LTRasterViewPerspective)viewPerspective 
                               palette:(nullable NSArray<LTRasterColor *> *)palette  
                                 error:(NSError **)error 

Parameters

flags
A combination of the RasterMemoryFlags enumeration members indicating the type of memory to allocate for the image data.

width
Width of the image in pixels.

height
Height of the image in pixels.

bitsPerPixel
The number of bits per pixel.

Valid values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24, 32, 48, and 64.

Use 0 to create an 8-bit grayscale image. In that case, the method ignores the _order_ and the _palette_ parameters.

order
Color order for 16-bit, 24-bit, 32-bit, 48-bit and 64-bit images.

If the resultant image is less than 16 bits per pixel, this will have no effect since palletized images have no order.

viewPerspective
Specifies where the beginning of the image is stored.

Most file formats start in the lower left corner while some formats start in the upper left corner.

palette
The palette that the image will use. You can specify your own palette, or use null for LEAD's fixed palette. The _palette_ member is used only when _bitsPerPixel_ is less than or equal to 8.

Remarks

Support for 12 and 16-bit grayscale images is only available in the Document/Medical Imaging editions.

There is some speed penalty (loss) for accessing RasterMemoryFlags.Tiled images. Therefore, it is not recommended for use with all images.

The RasterMemoryFlags.Tiled images are not used by default. LEADTOOLS will create them only if it failed to create RasterMemoryFlags.Conventional images and RasterMemoryFlags.NoTiled was not specified.

The following lists the distinct types of bitmaps:

  • Conventional (uncompressed and contiguous) This is the most common type.
  • Compressed (1-bit only)
  • Tiled (uncompressed, stored internally as up to 64MB tiles)

For more information, refer to Accounting for View Perspective.

For more information, refer to Grayscale Images.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Dicom; 
using Leadtools.Drawing; 
using Leadtools.Controls; 
using Leadtools.Svg; 
 
 
public void RasterImageExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_RasterImage1.bmp"); 
   string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_RasterImage2.bmp"); 
 
   // Load the image 
   RasterImage srcImage = codecs.Load(srcFileName); 
 
   // Creates a new image in memory with same dimensions as the source image 
   RasterImage destImage = new RasterImage( 
      RasterMemoryFlags.Conventional, 
      srcImage.Width, 
      srcImage.Height, 
      srcImage.BitsPerPixel, 
      srcImage.Order, 
      srcImage.ViewPerspective, 
      srcImage.GetPalette(), 
      IntPtr.Zero, 
      0); 
 
   // Copy the data from the source image to the destination image 
   srcImage.Access(); 
   destImage.Access(); 
 
   byte[] buffer = new byte[srcImage.BytesPerLine]; 
 
   for (int y = 0; y < srcImage.Height; y++) 
   { 
      srcImage.GetRow(y, buffer, 0, buffer.Length); 
      destImage.SetRow(y, buffer, 0, buffer.Length); 
   } 
 
   destImage.Release(); 
   srcImage.Release(); 
 
   // We do not need the source image anymore 
   srcImage.Dispose(); 
 
   // save the destination image 
   codecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 24); 
 
   // perform image processing on the image 
 
   FlipCommand flipCmd = new FlipCommand(); 
   flipCmd.Horizontal = false; 
   flipCmd.Run(destImage); 
 
   // save it 
   codecs.Save(destImage, destFileName2, RasterImageFormat.Bmp, 24); 
 
   // Clean up 
   destImage.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.ArrayList; 
import java.util.List; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.*; 
import leadtools.svg.*; 
import leadtools.imageprocessing.CloneCommand; 
import leadtools.imageprocessing.FillCommand; 
import leadtools.imageprocessing.FlipCommand; 
import leadtools.imageprocessing.GrayscaleCommand; 
import leadtools.imageprocessing.color.InvertCommand; 
import leadtools.imageprocessing.color.PosterizeCommand; 
 
 
public void rasterImageExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName1 = combine(LEAD_VARS_IMAGES_DIR, "Image1_RasterImage1.bmp"); 
   String destFileName2 = combine(LEAD_VARS_IMAGES_DIR, "Image1_RasterImage2.bmp"); 
 
   // Load the image 
   RasterImage srcImage = codecs.load(srcFileName); 
 
   // Creates a new image in memory with same dimensions as the source image 
   byte[] userData = new byte[0]; 
   RasterImage destImage = new RasterImage(RasterMemoryFlags.CONVENTIONAL.getValue(), srcImage.getWidth(), 
         srcImage.getHeight(), 
         srcImage.getBitsPerPixel(), srcImage.getOrder(), srcImage.getViewPerspective(), srcImage.getPalette(), 
         userData, 0); 
 
   // Copy the data from the source image to the destination image 
   srcImage.access(); 
   destImage.access(); 
 
   byte[] buffer = new byte[srcImage.getBytesPerLine()]; 
 
   for (int y = 0; y < srcImage.getHeight(); y++) { 
      srcImage.getRow(y, buffer, 0, buffer.length); 
      destImage.setRow(y, buffer, 0, buffer.length); 
   } 
 
   destImage.release(); 
   srcImage.release(); 
 
   // We do not need the source image anymore 
   srcImage.dispose(); 
 
   // Save the destination image 
   codecs.save(destImage, destFileName1, RasterImageFormat.BMP, 24); 
 
   // Perform image processing on the image 
   FlipCommand flipCmd = new FlipCommand(); 
   flipCmd.setHorizontal(false); 
   flipCmd.run(destImage); 
 
   // Save it 
   codecs.save(destImage, destFileName2, RasterImageFormat.BMP, 24); 
 
   // Clean up 
   destImage.dispose(); 
   codecs.dispose(); 
 
   assertTrue("file unsuccessfully saved to " + destFileName2, (new File(destFileName2)).exists()); 
   System.out.printf("File saved successfully to %s%n", destFileName2); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.